Recette n 58 Utiliser Google Drive dans vos applications 
Page 185


@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
   String accountName = settings.getString("gdriveAccount", null);
   credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
   if(displayName == null) {
      startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
   } else {
      credential.setSelectedAccountName(accountName);
      service = getDriveService(credential);
   }
   // ...
}



@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
   switch (requestCode) {
      case REQUEST_ACCOUNT_PICKER:
         if (resultCode == RESULT_OK && data != null && data.getExtras() != null) {
            String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
            if (accountName != null) {
               credential.setSelectedAccountName(accountName);
               service = getDriveService(credential);
               SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
               Editor e = settings.edit();

               e.putString("gdriveAccount ", accountName);
               e.commit();

            }
         }
      break;
      case REQUEST_AUTHORIZATION:
         if (resultCode == Activity.RESULT_OK) {
            // refaire l'opration aprs authentification, par ex : saveFileToDrive();
         } else {
            startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
         }
      break;
   }
}





private Drive getDriveService(GoogleAccountCredential credential) {
      return new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential)
         .setApplicationName("GDriveTest")
         .build();
}
